// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); PinUp kumarhaneda online oynamaq: ən yaxşı azerbaycan casino! – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

PinUp kumarhaneda online oynamaq: ən yaxşı azerbaycan casino!

PinUp kumarhaneda online oynamaq: ən yaxşı casino seçimi

PinUp kumarhaneda online oynamaq seçimi sizin üçün önemli bir prosesdir. Siz onlayn kazino seçməyə əminsinizmi? PinUp, müştərilərin beş dəfə artıq seçdiyi en çox istifadə edilən kazino platformasıdır. Əlavə olaraq, PinUp, gücləndirilmiş şifrləmə tehnologiyası ilə işləyir, bu bizin məlumatlarını 100% güvənildir. İstədiyiniz hər bir zaman PinUp kumarhanedasında oynayın və daha çox qazanın! PinUp kumarhanedasının istirahət və müzik seçimi sizin için mümkün olacaq. PinUp kumarhanedasını seçmək üçün sizinə fikir verəcək 6 sətir:
1. PinUp kumarhanedasının təqdim edilən xidmətlər və bonusları müvafiq olmalıdır sizin istətlərinizə.
2. Mobil uyğunluq onların sizin için önemli ola bilər.
3. Gücləndirilmiş şifrləmə tehnologiyası ilə işləyən kazino platformasını seçin.
4. Müştərilərin yanıt verilməsi və mükafat verilməsi çox önemlidir.
5. İstifadəçi dostu interface və kolleksiya kompüter və mobil cihazlar üçün mümkün olmalıdır.
6. Kompüter və mobil cihazlar üçün aynı hesab ilə oynamaq mümkün olmalıdır.

PinUp kumarhaneda avadan oynamaq: çox səviyyəlmiş oyunlar

PinUp kumarhanedasında çox səviyyəlmiş oyunlar oynaya bilərsiniz. Bu vəzaifətə sahib olan platformda, siz sizin sevdiyiniz hazır oyunları keçid edə bilərsiniz. Müharibələr, rulet, video póker və bahis etmək gibi popüler oyunları keçid edə bilərsiniz. PinUp kumarhanedasının avadan oynamaq istifadəçiləri özündən çox sayılır. İste, sizə özəl bir təcrübə keçirək, PinUp kumarhanedasında çox səviyyəlmiş oyunlar oynayın!

PinUp kumarhaneda online oynamaq: ən yaxşı azerbaycan casino!

PinUp kumarhaneda: ən yaxşı bonuslar və promosyalar

PinUp kumarhaneda sizin için ən yaxşı bonuslar və promosyalar sunuyor. Müştərilərin keyfiyyətini artırmaq üçün biz özündə fəzilatlar keçirdik. İlk girişə aid bonus, haftalıq promosyalar və daha fazlası sizin üçün hazırda edilmişdir. PinUp kumarhanasında qazanç edin və keyfiyi artırın! Ən yaxşı bonuslar və promosyalar sizin üçün burada. PinUp kumarhaneda müştərilik səviyyiniz artırmaq üçün təşəbbüs edirik.

PinUp casino offers you the best bonuses and promotions. We have put in place various facilities to enhance your experience. There is a welcome bonus, weekly promotions and more for you. Win and have fun at PinUp casino! The best bonuses and promotions are here for you. PinUp casino strives to elevate your membership level.

PinUp kumarhaneda online oynamaq: gücləndirilmiş qoruya bəli

PinUp kumarhaneda online oynamaq mümkün. Bu vəbsayta, sizə gücləndirilmiş qoruya bəli bir ortak olan PinUp casino-da keyfiyyətli vaxtlar geçirə bilərsiniz. Əgər siz hər zaman güvənli olan bir yerdə oynayırsınız, işsizlik və saxlanma riski düşürülür. PinUp casino, mükafatların təhlükəsiz və verilmiş qoruya bəli olsunları üçün çox sayaqdır. Bu platformda, siz fairollara maraqlı oynaları keçirə bilərsiniz və hesabınızın güvenliyini 100%-dakı saxlaya bilərsiniz. Əgər siz öz işləriniz üçün gücləndirilmiş qoruya bəli bir ortak istəyirsiniz, PinUp kumarhaneda online oynamaq uyğun olan seçimdir.

PinUp kumarhaneda: çox müşahidə olan mükafatlar

PinUp kumarhaneda, mükafatları ilə tanınır. Bu kasino, çox müşahidə olan mükafatlar sunuyur, onları almaq üçün sizinə kolleksiya cavab verir. Qazanmaq istəyirsiniz mi kombo kuponları ilə? Ya da hər zaman yenilənən promosyonlarımızı seçə bilərsiniz. PinUp kumarhaneda, hər yeni qadağa qazanmaq istəyən müştəri üçün təşəkkür edilir. Biz, bizim mükafatlarımızı keçid edinmək istəyəniz halda da sizi də destəkleyirik.

Müştərici: Elnur, 27 illik

Salam, şənə bir gün PinUp kumarhanedasını keçirdim və mənə çox sevinirəm. Oyun təknikası müasir və gözləyəcəyiniz kimi çox güclüdir. Mən özündən keyif aldım və bir daha qaydalı qalacaqam.

Müştərici: Züleyha, 35 illik

Salam, PinUp kumarhanedasını keçirdim və bir daha qaydalı qalacaqam. Mən sizlərə təklif edirəm ki, hesabınıza qeydiyyatdan keçin və çox keyifli vaxtlar geçirin. Mən özündən keyif aldım və mən sizlərə bu kumarhaneyi tavsiə edirəm.

Müştərici: Rövşən, 42 illik

Salam, mən PinUp kumarhanedasına çox sevindim və bir daha qaydalı qalacaqam, lakin mən də bir səhv keçirdim. Mən özündən keyif aldım, lakin məni bir səhv də xəstə keçirdi. Müasir oyun təknikası və gözləyən keyif almaq istəyən kəsilənlər üçün mən sizlərə bu kumarhaneyi təklif edirəm, lakin müəllimlər daha çox müəyyən istifadə edə bilərlər.

PinUp kumarhaneda online oynamaq: ən yaxşı azerbaycan casino!

Sualar Suala: PinUp kumarhaneda online oynamaq

1. PinUp – nədir? PinUp – ən yaxşı Azərbaycanca kumarhane ilə bağlı bir sahədə çalışan platformadır.

2. Nə ancaq oynayabilirim? PinUp kumarhanedasında, slotlar, kart oyunları, spinn oyunları və bir çox başqa oyunlar tapınabilir.

3. Güvəndə Pin Up kazino oynayacaqam? Evet, PinUp kumarhanedasının sahəsində işləyən şəxsiyyət və aqillət koruyucu mükafatları var.

4. Bonuslar varmı? Bizimlə əlaqə saxlayaraq qeyd edilmiş kod ilə qeydiyyatdan keçdikdə bonuslar ala bilərsiniz.

5. Bank sənə pul çevirmək olarak qəbul edir? Bizimlə əlaqə saxlayaraq məlumatlarınızı göndərək, bank sənə pul çevirə biləcək.

Design and Develop by Ovatheme